#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
package ${package}.common.bean.vo;

import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.Email;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * Description: UpdateUserVo
 *
 * @author zhang wen yi
 * @date 2019/8/6 15:28
 *
 * <pre>
 *              ${copyright}
 *      Copyright (c) 2019. All Rights Reserved.
 * </pre>
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UpdateUserVo implements Serializable {

    private static final long serialVersionUID = 1L;
    /**
     *主键
     */
    @NotNull
    @ApiModelProperty("主键")
    private Long id;

    /**
     *用户姓名
     */
    @ApiModelProperty("用户姓名")
    private String nickname;

    /**
     *密码
     */
    @ApiModelProperty("密码")
    private String password;

    /**
     *用户账户
     */
    @ApiModelProperty("用户账户")
    private String username;

    /**
     *性别
     */
    @Length(max = 1, message = "数据库不接受过长字段")
    @ApiModelProperty("性别")
    private String gender;

    /**
     电子邮箱
     */
    @Email(message = "邮箱格式非法")
    @ApiModelProperty("电子邮箱")
    private String email;


    /**
     *移动电话
     */
    @ApiModelProperty("移动电话")
    private String mobilephone;


    /**
     *电话
     */
    @ApiModelProperty("电话")
    private String telephone;

    /**
     *用户头像
     */
    @ApiModelProperty("用户头像")
    private String icon;
    /**
     *职位
     */
    @ApiModelProperty("职位")
    @Length(max = 100)
    private String job;

    /**
     *用户组主键(可以是部门，公司)
     */
    @ApiModelProperty("用户组主键(可以是部门，公司)")
    private Long groupId;

    /**
     *账户类型：1：普通用户，2：VIP用户，3：超级管理员
     */
    @ApiModelProperty("账户类型：1：普通用户，2：VIP用户，3：超级管理员")
    @Range(min = 0, max = 3, message = "账户类型不合法")
    private Integer type;

    /**
     *账户状态：0：禁用，1：启用，2：邮箱未验证，3：手机号未验证
     */
    @Range(min = 0, max = 3, message = "状态不合法")
    @ApiModelProperty("账户状态：0：禁用，1：启用，2：邮箱未验证，3：手机号未验证")
    private Integer status;

}
